<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<script>
description("HTMLTextAreaElement cols attribute test");

function colsAttributeEffect(value)
{
    var element = document.createElement("textarea");
    element.setAttribute("cols", value);
    return element.cols;
}

shouldBe('document.createElement("textarea").cols', '20');

shouldBe('colsAttributeEffect("")', '20');

shouldBe('colsAttributeEffect("1")', '1');
shouldBe('colsAttributeEffect("2")', '2');
shouldBe('colsAttributeEffect("10")', '10');

shouldBe('colsAttributeEffect("0")', '20');

shouldBe('colsAttributeEffect("-1")', '20');

shouldBe('colsAttributeEffect("1x")', '1');
shouldBe('colsAttributeEffect("1.")', '1');
shouldBe('colsAttributeEffect("1.9")', '1');
shouldBe('colsAttributeEffect("2x")', '2');
shouldBe('colsAttributeEffect("2.")', '2');
shouldBe('colsAttributeEffect("2.9")', '2');

shouldBe('colsAttributeEffect("a")', '20');
shouldBe('colsAttributeEffect("\v7")', '20');
shouldBe('colsAttributeEffect("  7")', '7');

var arabicIndicDigitOne = String.fromCharCode(0x661);
shouldBe('colsAttributeEffect(arabicIndicDigitOne)', '20');
shouldBe('colsAttributeEffect("2" + arabicIndicDigitOne)', '2');

// Verify that values >= 2^31 result in the default value.
shouldBe('colsAttributeEffect("2147483646")', '2147483646');
shouldBe('colsAttributeEffect("2147483647")', '2147483647');
shouldBe('colsAttributeEffect("2147483648")', '20');
shouldBe('colsAttributeEffect("2147483649")', '20');
// Verify that 2^32 is no special boundary at all.
shouldBe('colsAttributeEffect("4294967295")', '20');
shouldBe('colsAttributeEffect("4294967296")', '20');
shouldBe('colsAttributeEffect("4294967297")', '20');
</script>
</body>
</html>
